home *** CD-ROM | disk | FTP | other *** search
/ Workbench Design / WB Collection.iso / workbench werkzeuge / backdroppic. tools / newpatterns / newpatterns.guide (.txt) < prev    next >
Amigaguide Document  |  1996-04-07  |  20KB  |  456 lines

  1. @DATABASE NewPattern.Guide
  2. @AUTHOR Daniel Balster
  3. @$VER: newpattern.guide 0.1
  4. @(C) Copyright 
  5. 1995 by Daniel Balster
  6. @INDEX index
  7. @HELP help
  8. @WIDTH 60
  9. @HEIGHT 30
  10. @SMARTWRAP
  11. @FONT helvetica.font 13
  12. @FONT xhelvetica.font 13
  13. @NODE Main
  14. @TITLE "Is the font too big ? Or haven't you installed times/24 yet ?!"
  15. @FONT times.font 24
  16. @{LINE}
  17. @{JCENTER}@{B}@{U}NewPatterns 1.0@{UU}@{UB}
  18. @{PAR}@{LINE}
  19. a Workbench Backfill Replacement
  20. @{PAR}@{LINE}
  21. written by
  22. @{PAR}@{LINE}
  23. @{"Daniel Balster" link author}
  24. @{PAR}@{LINE}
  25. @{"     Ok     " link index}
  26. @ENDNODE
  27. -------------------------------------------------------------
  28. @NODE index
  29. @TITLE "NewPattern 1.0"
  30. @{JCENTER}@{CODE}
  31. NewPatterns 1.0
  32. Copyright 
  33.  1995
  34. Daniel Balster
  35. All Rights Reserved.
  36. This is (currently) FreeWare@{UB}
  37. @{JLEFT}
  38.     @{"     " link intro}    Introduction
  39.     @{"     " link features}    Features
  40.     @{"     " link required}    Requirements
  41.     @{"     " link install}    Installation
  42.     @{"     " link config}    Configuration
  43.     @{"     " link usage}    Usage
  44.     @{"     " link future}    Future
  45.     @{"     " link author}    Author
  46.     @{"     " link registration}    Registration
  47.     @{"     " link credits}    Credits
  48.     @{"     " link bugs}    Bugs
  49.     @{"     " link rights}    Disclaimer
  50.     @{"     " link distrib}    Distribution
  51. @ENDNODE
  52. -------------------------------------------------------------
  53. @NODE help
  54. @TITLE "Ok, this isn't really a help; you should know all this ;-)"
  55. @{LINE}
  56.     currently empty.
  57. @ENDNODE
  58. -------------------------------------------------------------
  59. @NODE intro
  60. @TITLE "don't play outside with the other children; play with the computer!"
  61. @{JCENTER}@{LINE}@{B}Introduction@{UB}
  62. @{PAR}@{JLEFT}
  63. You all know the WBPattern application in the SYS:Prefs drawer. You can select
  64. a small pattern or an image for the background of the ROOT, DRAWER and SCREEN
  65. windows. But the backfill method of the Workbench is slow, and if you use
  66. MagicLayers or some other kind of opaque window movers you will know that.
  67. Just open a drawer and size it to the maximum size, and then click on its
  68. ZOOM gadget and minimize it. Now play with the ZOOM gadget and try it with
  69. several Workbench resolutions. @{I}Is that fast ?@{UI}. I think not. And this
  70. ugly WBPattern application! I have so many patterns I want to have as a background.
  71. And each time select it with that? No. I've tried MagicSelector, and after a while
  72. I wrote my own Random-Pattern-Selector (MakePatPrefs, useless now). But it was
  73. still the speed of the refresh that makes me feel sick. Then I found the program
  74. @{"LayerHook" link credits} on the aminet and that method was so speedy, that I
  75. decided to write a hack that replaces the original backfill hook. And another thing
  76. was important to do so: the original hook isn't able to handle real 24 Bit! But my
  77. CyberGraphX Workbench runs sometimes in 15/16/24 Bit and so I wanted to have truecolor
  78. backgrounds. This isn't implemented yet, but a working version exists; it looks and
  79. feels great! Read this documentation (care)fully, and mostly the @{"bug" link bugs} section.
  80. @{PAR}
  81. @{PAR}
  82. @{PAR}
  83. @{JRIGHT}
  84. Daniel Balster
  85. @ENDNODE
  86. -------------------------------------------------------------
  87. @NODE required
  88. @TITLE "MC68060, 64MB RAM, 2GB Harddisk..."
  89. @{CODE}
  90.     @{B}Really Required@{UB}
  91.     - Workbench V39 and Kickstart V39 (AmigaOS 3.0) or higher
  92.     - 68020++ processor (A1200/A4000/CD32/A3000)
  93.     - datatypes.library and a couple of datatypes, of course
  94.     - as much ChipRAM/FastRAM as needed by the patterns.
  95.     - a mouth (without you cannot eat the food)
  96.     @{B}Recommended@{UB}
  97.     - AGA
  98.     - 4 MB FastRAM and 2 MB ChipRAM
  99.     @{B}Professional@{UB}
  100.     - a graphics card
  101.     - CyberGraphX (if you want to use 15/16/24 Bit Patterns)
  102.     - 16 MB FastRAM (used to hold more than one 24-Bit fullscreen image)
  103.     - 68040/68060 Processor (JPEG decompression needs time)
  104. @ENDNODE
  105. -------------------------------------------------------------
  106. @NODE install
  107. @TITLE "add this line to your CONFIG.SYS: C:\WINDOWS\SYSTEM\NEWPATRN.SYS /R:15 /S:XMS ..."
  108. @{CODE}
  109. @{JCENTER}@{B}Patterns@{UB}
  110. @{JLEFT}
  111. Ofcourse you will need some patterns and backdrops somewhere on your harddisk.
  112. Without it doesn't make sense! Recommended location is SYS:Prefs/Patterns/
  113. @{JCENTER}@{B}Database@{UB}
  114. @{JLEFT}
  115. If you like you can create a simple database of all your patterns. Just write
  116. a TEXT file and use each line as an entry for a pattern, i.e.
  117. SYS:PREFS/Patterns/NewIcons-F/Foilage
  118. SYS:PREFS/Patterns/NewIcons-F/FrankLloydWright
  119. SYS:PREFS/Patterns/NewIcons-G/G-rain
  120. SYS:PREFS/Patterns/NewIcons-G/GearBox
  121. SYS:PREFS/Patterns/NewIcons-G/Granite-01
  122. and save it to a location where you can find it, like S:patterns.database.
  123. This is used by the program RandomPattern.
  124. @{JCENTER}@{B}Program binaries@{UB}
  125. @{JLEFT}
  126. There are currently three shell executables.
  127.     @{"NewPatterns" link NewPatterns}
  128.     @{"RandomPattern" link RandomPattern}
  129.     @{"SetPattern" link SetPattern}
  130. Copy them to a location in your command path, like C:
  131. @{JCENTER}@{B}Automated usage@{UB}
  132. @{JLEFT}
  133. If you want NewPatterns to be installed permanently, you must edit
  134. your S:startup-sequence. Add these lines RIGHT BEFORE LoadWB:
  135.     ; used for a constant pattern set
  136.     NewPatterns
  137.     SetPattern >NIL: ROOT <pattern> DRAWER <pattern> SCREEN <pattern>
  138.     ; used for a random pattern set
  139.     NewPatterns
  140.     RandomPattern >NIL: <pattern.database> [ROOT] [DRAWER] [SCREEN]
  141.     See the @{"future"} link future} and @{"bugs"} link bugs}
  142. @ENDNODE
  143. -------------------------------------------------------------
  144. @NODE usage
  145. @TITLE "GREAT! It dishwashes, cleans and is smooth to the nature! Only $9.99!"
  146. @{CODE}
  147.     @{"NewPatterns" link NewPatterns}
  148.     @{"RandomPattern" link RandomPattern}
  149.     @{"SetPattern" link SetPattern}
  150.     The Versions that ends up with .cgfx are compiled with the CyberGraphX stuff.
  151.     I've included two silly RAW images. Their format is 200x150x24 Bit RAW RGB.
  152.     This is what the backfiller only will accept. WARNING! DO NOT LOAD *ANY* OTHER
  153.     PICTURES OR FILES WITH LESS THAN 90000 BYTES! This is only for test purposes
  154.     and not for a regulary use.
  155.     Switch the Workbench into 15/16/24-Bit mode and enter at the shell prompt:
  156.     >SetPattern ROOT logo.rgb DRAWER daniel.rgb
  157.     logo.rgb is a video grab of a SGI mousepad; I used the built-in desktop camera
  158.     of an INDY. The mousepad is nice, eh ?
  159.     daniel.rgb is not so nice. This shows me getting bottles of beer out of an fridge.
  160.     This was cropped out of an BASE*4 PhotoCD image.
  161.     Note: do not do "Mode Jumping" with the Workbench, I haven't implemented the
  162.     screennotify.library support!
  163. @ENDNODE
  164. -------------------------------------------------------------
  165. @NODE NewPatterns
  166. @TITLE ""
  167. @{CODE}
  168. @TAB 8
  169.     @{B}NAME@{UB}
  170.         NewPatterns
  171.     @{B}AMIGADOS@{UB}
  172.         NewPatterns
  173.     @{B}FUNCTION@{UB}
  174.         Installs the replacement backfill hook for the Workbench. Once
  175.         started it detaches from the shell.
  176.     @{B}INPUTS@{UB}
  177.         none
  178.     @{B}RESULT@{UB}
  179.         none
  180.     @{B}NOTES@{UB}
  181.         Once started, there is not possibility in removing it. Yet.
  182. @ENDNODE
  183. -------------------------------------------------------------
  184. @NODE SetPattern
  185. @TITLE ""
  186. @{CODE}
  187. @TAB 8
  188.     @{B}NAME@{UB}
  189.         SetPattern
  190.     @{B}AMIGADOS@{UB}
  191.         SetPattern ROOT,DRAWER,SCREEN,NOROOT/S,NODRAWER/S,NOSCREEN/S
  192.     @{B}FUNCTION@{UB}
  193.         Changes a pattern for the desired object.
  194.     @{B}INPUTS@{UB}
  195.         ROOT    - name of a file to be used as ROOT pattern (Workbench Window)
  196.         DRAWER    - name of a file to be used as DRAWER pattern (Workbench Drawers)
  197.         SCREEN    - name of a file to be used as SCREEN pattern (Workbench Screen)
  198.                   @{B}THIS IS CURRENTLY DISABLED@{UB}
  199.         NOROOT    - set the ROOT pattern to an empty pattern (overrides ROOT)
  200.         NODRAWER    - set the DRAWER pattern to an empty pattern (overrides DRAWER)
  201.         NOSCREEN    - set the SCREEN pattern to an empty pattern (overrides SCREEN)
  202.                   @{B}THIS IS CURRENTLY DISABLED@{UB}
  203.     @{B}RESULT@{UB}
  204.         The Workbench should be refreshed with your new patterns
  205.     @{B}NOTES@{UB}
  206.         Even if no patterns are provided, the Workbench will be refreshed.
  207. @ENDNODE
  208. -------------------------------------------------------------
  209. @NODE RandomPattern
  210. @TITLE ""
  211. @{CODE}
  212. @TAB 8
  213.     @{B}NAME@{UB}
  214.         RandomPattern
  215.     @{B}AMIGADOS@{UB}
  216.         RandomPattern DATABASE,ROOT/S,DRAWER/S,SCREEN/S
  217.     @{B}FUNCTION@{UB}
  218.         Chooses random patterns for each of the given objects.
  219.     @{B}INPUTS@{UB}
  220.         DATABASE    - a Textfile containing filenames (full path!) of all your patterns (or a selection)
  221.         ROOT    - select a pattern for the Workbench Window
  222.         DRAWER    - select a pattern for the Workbench Drawers
  223.         SCREEN    - select a pattern for the Workbench Screen
  224.                   @{B}THIS IS CURRENTLY DISABLED@{UB}
  225.     @{B}RESULT@{UB}
  226.         The Workbench should be refreshed with your new patterns
  227.     @{B}NOTES@{UB}
  228. @ENDNODE
  229. -------------------------------------------------------------
  230. @NODE registration
  231. @TITLE "Lock up: NAME AND NUMBER!"
  232. @{CODE}
  233. NewPatterns will be Shareware.
  234. Currently it is not crippled in any way, but this will change in the next version.
  235. All NewPatterns versions below 2.0 won't be crippled in any way, and won't be
  236. supported by forthcoming versions.
  237. This version is just a PREVIEW. I published it to get YOUR reactions. It is much
  238. work to develop a complete product and to maintain it. I need to know if there are
  239. people who has also a need of this.
  240. If you are interested in it, @{"DROP ME A MAIL" link author}.
  241. @ENDNODE
  242. -------------------------------------------------------------
  243. @NODE author
  244. @TITLE "44 81 a9 f3 dd 4a 14 00 d3 c1 89 37 a3 29 12 cd e0 00 01 4e 75"
  245. @{CODE}
  246. If you contact me by EMail you should use the topic "NewPatterns - <special>"
  247. where <special> is a short set of keywords the mail is about.
  248. If you want to talk/chat with me, try the IRC or just visit me.
  249. @{JCENTER}@{B}SMail@{UB}
  250. Daniel Balster
  251. Max-Reger Weg 48
  252. 33100 Paderborn
  253. @{JCENTER}@{B}EMail@{UB}
  254. dbalster@uni-paderborn.de
  255. @{JCENTER}@{B}IRC@{UB}
  256. dbalster#amigager
  257. @ENDNODE
  258. -------------------------------------------------------------
  259. @NODE future
  260. @TITLE "Stardate 43743.3"
  261. @{CODE}
  262. @{JCENTER}@{B}The next version will have these features@{UB}
  263. @{JLEFT}
  264.     - Make it a WBStartup application
  265.       It is required that the Workbench screen is initally open.
  266.       Currently the patches are launched right before the LoadWB
  267.       command.
  268.     - SCREEN Support
  269.       The method the SCREEN is backfilled differs from the method
  270.       the Windows are. Is this really required? I mean the SCREEN
  271.       is always hidden by ROOT. I do not need this. Do you ?
  272.     - 15/16/24 Bit image loaders.
  273.       The hook is capable of copying/blitting with WritePixelArray()
  274.       and BltBitMap() on CyberGraphX screens (use the .cgfx versions
  275.       to test it), but I haven't implemented a stable set of 15/16/24 Bit
  276.       loader routines yet.
  277.       This is still future:
  278.       The internal format of the image will be adapted to the
  279.       Screen it will be used for. For an example: a 24Bit images will be
  280.       converted into a special 15 Bit format (assuming you use a 15 Bit
  281.       Workbench). This will reduce the memory that is needed for the
  282.       picture cache and speed up rendering a lot. Truecolor remapping
  283.       (Pixelformat remapping) is much faster then 8Bit dithering.
  284.     - A nice preferences Editor with a Standard GUI for all the Options.
  285.       This includes locale.library, font sensitive GUI and online help.
  286.       Producing such a GUI is not difficult but it takes much time...
  287.      - Image Cataloger
  288.      
  289.        I will implement a fast Image cataloger in the Preferences Editor,
  290.        that will show small thumbnails from all the images. If the editor
  291.        runs on a CyberGraphX Workbench with 15/16/24 Bit
  292.     - Transparent Patterns
  293.       This is a *BAD* hack; it uses the hidden areas of a window as a
  294.       background pattern - this produces a somehow "transparent" effect.
  295.       The parsing through the damage/savelists of the layers.library is
  296.       obsolete and I don't know if this will be released ever as it has
  297.       still many bogus sideeffects.
  298.     - Timed Patterns
  299.       With this feature it will be possible to connect dates with patterns.
  300.       Just think about it: Each morning a rising sun pattern and a moon
  301.       pattern during the night! If you have birthday, a cake pattern will
  302.       appear and on christmas all windows will have snow... how sweeeet.. ;-)
  303.       I wrote this as a script months ago, and it is quite nice ;-)
  304.     - Parametric Patterns
  305.       Got tired of all your pattterns ? This will produce nice looking
  306.       parametric patterns from editable formulas.
  307.     - user requested
  308.       Write me what YOU want to have implemented.
  309. @ENDNODE
  310. -------------------------------------------------------------
  311. @NODE credits
  312. @TITLE "good bye and thank you for the fish"
  313. @{CODE}
  314. NewPatterns uses the routine @{B}CopyTiledBitMap()@{UB} from the @{"LayerHook.lha" link "Aminet6:aminet/dev/gui/layerhook.readme/main"} archive.
  315. The authors of that package can always request a free version of NewPatterns.
  316. This routine was adapted to work with CyberGraphX by @{"me" link author}
  317. @ENDNODE
  318. -------------------------------------------------------------
  319. @NODE config
  320. @TITLE ""
  321. @{CODE}
  322. You can currently control only the picture remapping.
  323. This is done by using ENV: variabels.
  324. Create ENV:NewPatterns for this, and also ENVARC:NewPatterns if
  325. you want to save the options.
  326. NewPatterns/MAXCOPYWIDTH
  327. NewPatterns/MAXCOPYHEIGHT
  328.     These variables were used by the @{"CopyTiledBitMap()" link credits} routine.
  329.     They were used to determine the optimal size for a blit.
  330.     The Standard settings are 256x256 for Width and Height. This is a good size.
  331.     If you use ECS/AGA and have the pattern in the ChipRAM, BltBitmap works
  332.     much faster the higher this value is.
  333.     On custom graphic boards, pattern data must be copied with the CPU. If your
  334.     board is slow (like the Picasso) you want to set this values to minor ones.
  335.     Within the board memory the graphics boards' internal blitters are much faster,
  336.     so you can control this bottleneck with this option.
  337. NewPatterns/REMAP
  338.     Set it to 1 if you want to remap your images to the colors of your Workbench.
  339.     This is the default.
  340.     Set it to 0 if the images shouldn't be remapped at all. This is useful for
  341.     MagicWB owners, who remapped all their patterns to a default palette. This
  342.     speeds up loading an image.
  343. NewPatterns/PRECISION
  344.     Unlike the internal Workbench backfiller, this allows you to set the remap
  345.     precision. This affects the number of pens to be allocated by a picture and
  346.     the remapping time. Set it to
  347.     3    - exact remapping is the best and pen exhaustive method. Takes time.
  348.     2    - image remapping is the default method.
  349.     1    - GUI remapping is not as good as the above.
  350.     0    - Icon remapping uses the least number of pens and is the fastest remapper.
  351.     All other values cause the default precision.
  352.     ----------------------------------------------------------------------------
  353.     WARNING! This all are experienced user flags. In circumstances it is possible
  354.     that a pattern couldn't be loaded anymore. In such a case the Backfiller returns
  355.     to a standard Clear() Hook.
  356. @ENDNODE
  357. -------------------------------------------------------------
  358. @NODE bugs
  359. @TITLE " :....-( "
  360. @{CODE}
  361. I've tried to provide an earthquake proof method in implementing this.
  362. Enforcer was used to check all oddities in conjunction with pointers,
  363. and several memory snappers helped me to locate memory losses.
  364. However, call @{"me" link author} if you detect an error.
  365. List of killed bugs:
  366. -    MagicLayer and MCP/MoveFullWindow produced layer garbage. fixed.
  367. -    Depth arranging of windows sometimes produced "offset garbage";
  368.     the pattern was refreshed with a different offset. fixed.
  369. List of known bugs:
  370. -    Ooops. If you are using CyberGraphX, you cannot use the CyberGraphX version
  371.     with normal AGA/ECS Screens - I check for a valid CyberGfxBase before
  372.     blitting -> AGA/ECS screens will be blank instead of filled.
  373.     I won't fix this in this version; it is a good demo restriction ;-)
  374. -    Do not use the AGA version on 15/16/24 Bit Screens; it is REALLY slow.
  375. -    the CyberGraphX version sometimes hangs while loading.
  376. -    The SCREEN pattern support is not completely compiled in this version; it was buggy
  377.     (it produces garbage). I use InstallLayerInfoHook() on the Screen's Layer_Info,
  378.     but that doesn't seem to work properly.
  379. -    Refreshing the Workbench is fast but not perfect. I notify IPrefs with
  380.     a dummy wbpattern.prefs file to cause a refresh. I also tried a hack,
  381.     that sends a modified Intuition Message to the Workbench; but this
  382.     causes still Enforcer hits and has been disabled for now.
  383. -    On a 15/16/24 Bit Workbench the above mentioned method to refreshing the
  384.     Windows won't work. This requires still some work; the oddity is that it
  385.     sometimes work. (try "Setpattern" twice (no parameters)
  386. -    While in 15/16/24 Bit Mode, loading files not in 200x150x24 raw RGB format
  387.     *WILL* crash/deadlock your machine. You have been warned.
  388. -    If the Workbench window is NOT a backdrop window, it will be handled as
  389.     a drawer window. This is because I check for WFLG_BACKDROP & WFLG_WBENCHWINDOW
  390.     in the win->Flags. This is quite fast and system friendly, and can be figured
  391.     out during OpenWindowTagList(). Is this really a bad bug? 
  392. -    During a pattern change, the colors of the pattern that is going to be
  393.     replaced will look ugly. This is becaused I free the pens and use them for
  394.     the new image. This gives you more free pens! I could clear the pattern during
  395.     the exchange, of course. But that is too much overhead; with the flickering you
  396.     get the fastest speed and the best pens. Who cares? It took less than a second!
  397. -    This guide was written by a german; it surely contains many many errors and
  398.     other language faults... But how many in the world can read german guides?
  399. -    If you change the screen resolution or close the Workbench, all images lost
  400.     their pens and will look ugly. I instruct the datatypes.library to remap
  401.     the images to a new bitmap and then FREE THE SOURCEBITMAP, and therefore it is NOT
  402.     possible to remap the images to a new screen. They must all be loaded again.
  403.     And even this job is not implemented yet, since I currently work on it.
  404.     I will use the screennotify.library for this.
  405. -    After closing/opening the Workbench I got three mysterious crashes until now
  406.     (3 out of 1000 ;-) and they could have been caused due to the non-existing
  407.     screennotify.library support. I do not know if I must free all pens BEFORE
  408.     closing the Workbench...
  409. -    On 15/16/24 Bit Workbenches you cannot use 8 Bit patterns anymore. I have disabled
  410.     the datatypes loader to have an easy test control over my loader. This will change
  411.     in the future
  412. @ENDNODE
  413. -------------------------------------------------------------
  414. @NODE rights
  415. @TITLE "And now Mr. Simpson?"
  416. @{LINE}
  417. @{LINE}
  418. THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY IF ANY KIND, EITHER
  419. EXPRESSED OR IMPLIED. BY USING IT, YOU AGREE TO ACCEPT THE ENTIRE RISK
  420. AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM.
  421. @{UB}
  422. @ENDNODE
  423. -------------------------------------------------------------
  424. @NODE distrib
  425. @TITLE ""
  426. @{LINE}
  427. @{LINE}
  428. THIS ARCHIVE IS FREEWARE. IT IS FREELY DISTRIBUTABLE AS LONG AS
  429. THE ARCHIVE REMAINS INTACT, AND ONLY A NOMINAL FEE IS CHARGED FOR ITS
  430. DISTRIBUTION.
  431. @{LINE}@{PAR}
  432. THE FOLLOWING PEOPLE CAN REQUEST MORE THAN A NOMINAL FEE FOR ITS DISTRIBUTION:
  433. @{LINE}@{PAR}
  434. @{UB}
  435. @{CODE}
  436. @{JCENTER}
  437. Fred Fish
  438. The Aminet Team (Urban D. Mueller)
  439. @ENDNODE
  440. -------------------------------------------------------------
  441. @NODE features
  442. @TITLE "some last words about it"
  443. @{CODE}
  444.     - NewPatterns speeds up the Workbench:
  445.     - Window Movement; Windows can be moved faster
  446.     - Window Sizing; Windows can be sized faster
  447.     - Window Opening/Closing; Windows appear/disappear much faster
  448.     - MagicLayers and clones run more faster now
  449.     - Images can be remapped with user defined precision
  450.     - All images look much better anyhow; it seems that the Workbench
  451.       only used a fixed set of pens.
  452.     - Memory access to slower graphics boards can be optimized
  453.     - It is the only way to get REAL 15/16/24 Bit backdrops ;-)
  454. @ENDNODE
  455. -------------------------------------------------------------
  456.